home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / usr / share / hplip / ui4 / fabwindow.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2009-10-28  |  20KB  |  496 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from base.g import *
  5. from ui_utils import *
  6. from PyQt4.QtCore import *
  7. from PyQt4.QtGui import *
  8. from fabwindow_base import Ui_MainWindow
  9. fax_avail = True
  10.  
  11. try:
  12.     from fax import fax
  13. except ImportError:
  14.     log.error('Fax address book disabled - Python 2.3+ required.')
  15.     fax_avail = False
  16.  
  17.  
  18. class FABWindow(QMainWindow, Ui_MainWindow):
  19.     
  20.     def __init__(self, parent):
  21.         QMainWindow.__init__(self, parent)
  22.         self.setupUi(self)
  23.         self.group = u'All'
  24.         self.name = None
  25.         self.updating_group = False
  26.         self.updating_name = False
  27.         self.user_settings = UserSettings()
  28.         self.user_settings.load()
  29.         self.user_settings.debug()
  30.         self.initDB()
  31.         self.initUi()
  32.         QTimer.singleShot(0, self.updateUi)
  33.  
  34.     
  35.     def initDB(self):
  36.         self.db = fax.FaxAddressBook()
  37.         data = self.db.get_all_records()
  38.         for d in data:
  39.             if u'All' not in data[d]['groups']:
  40.                 data[d]['groups'].append(u'All')
  41.                 continue
  42.         
  43.         if not data:
  44.             self.db.set('__' + utils.gen_random_uuid(), '', '', '', '', [
  45.                 u'All'], '')
  46.         
  47.  
  48.     
  49.     def initUi(self):
  50.         self.setWindowIcon(QIcon(load_pixmap('hp_logo', '128x128')))
  51.         self.NewGroupAction.setIcon(QIcon(load_pixmap('new_group', '24x24')))
  52.         self.NewGroupFromSelectionAction.setIcon(QIcon(load_pixmap('new_group_from_selection', '24x24')))
  53.         self.RenameGroupAction.setIcon(QIcon(load_pixmap('rename_group', '24x24')))
  54.         self.RemoveGroupAction.setIcon(QIcon(load_pixmap('remove_group', '24x24')))
  55.         self.NewNameAction.setIcon(QIcon(load_pixmap('new_user', '24x24')))
  56.         self.RemoveNameAction.setIcon(QIcon(load_pixmap('remove_user', '24x24')))
  57.         self.AddToGroupAction.setIcon(QIcon(load_pixmap('add_to_group', '24x24')))
  58.         self.RemoveFromGroupAction.setIcon(QIcon(load_pixmap('remove_from_group', '24x24')))
  59.         self.connect(self.QuitAction, SIGNAL('triggered()'), self.close)
  60.         self.connect(self.NewGroupAction, SIGNAL('triggered()'), self.NewGroupAction_triggered)
  61.         self.connect(self.NewGroupFromSelectionAction, SIGNAL('triggered()'), self.NewGroupFromSelectionAction_triggered)
  62.         self.connect(self.RenameGroupAction, SIGNAL('triggered()'), self.RenameGroupAction_triggered)
  63.         self.connect(self.RemoveGroupAction, SIGNAL('triggered()'), self.RemoveGroupAction_triggered)
  64.         self.connect(self.NewNameAction, SIGNAL('triggered()'), self.NewNameAction_triggered)
  65.         self.connect(self.RemoveNameAction, SIGNAL('triggered()'), self.RemoveNameAction_triggered)
  66.         self.connect(self.ImportAction, SIGNAL('triggered()'), self.ImportAction_triggered)
  67.         self.connect(self.RemoveFromGroupAction, SIGNAL('triggered()'), self.RemoveFromGroupAction_triggered)
  68.         self.connect(self.AddToGroupAction, SIGNAL('triggered()'), self.AddToGroupAction_triggered)
  69.         self.GroupTableWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
  70.         self.NameTableWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
  71.         self.connect(self.Splitter, SIGNAL('splitterMoved(int, int)'), self.Splitter_splitterMoved)
  72.         self.Splitter.setChildrenCollapsible(False)
  73.         self.Splitter.setHandleWidth(self.Splitter.handleWidth() + 2)
  74.         self.GroupTableWidget.verticalHeader().hide()
  75.         self.GroupTableWidget.setShowGrid(False)
  76.         self.GroupTableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
  77.         self.NameTableWidget.verticalHeader().hide()
  78.         self.NameTableWidget.setShowGrid(False)
  79.         self.NameTableWidget.setDragEnabled(True)
  80.         self.GroupTableWidget.setAcceptDrops(True)
  81.         self.GroupTableWidget.setDropIndicatorShown(True)
  82.         self.connect(self.GroupTableWidget, SIGNAL('itemSelectionChanged()'), self.GroupTableWidget_itemSelectionChanged)
  83.         self.connect(self.NameTableWidget, SIGNAL('itemSelectionChanged()'), self.NameTableWidget_itemSelectionChanged)
  84.         self.connect(self.NameLineEdit, SIGNAL('editingFinished()'), self.NameLineEdit_editingFinished)
  85.         self.connect(self.FaxNumberLineEdit, SIGNAL('editingFinished()'), self.FaxNumberLineEdit_editingFinished)
  86.         self.connect(self.NotesTextEdit, SIGNAL('textChanged()'), self.NotesTextEdit_textChanged)
  87.         self.connect(self.NotesTextEdit, SIGNAL('editingFinished()'), self.NotesTextEdit_editingFinished)
  88.         self.connect(self.GroupTableWidget, SIGNAL('namesAddedToGroup'), self.GroupTableWidget_namesAddedToGroup)
  89.         self.FaxNumberLineEdit.setValidator(PhoneNumValidator(self.FaxNumberLineEdit))
  90.         self.NameLineEdit.setValidator(AddressBookNameValidator(self.db, self.NameLineEdit))
  91.         self.GroupTableWidget.setContextMenuPolicy(Qt.ActionsContextMenu)
  92.         self.GroupTableWidget.addAction(self.NewGroupAction)
  93.         self.GroupTableWidget.addAction(self.NewGroupFromSelectionAction)
  94.         self.GroupTableWidget.addAction(self.RenameGroupAction)
  95.         self.GroupTableWidget.addAction(self.RemoveGroupAction)
  96.         self.NameTableWidget.setContextMenuPolicy(Qt.ActionsContextMenu)
  97.         self.NameTableWidget.addAction(self.NewNameAction)
  98.         self.NameTableWidget.addAction(self.AddToGroupAction)
  99.         self.NameTableWidget.addAction(self.RemoveFromGroupAction)
  100.         self.NameTableWidget.addAction(self.RemoveNameAction)
  101.         self.NameTableWidget.addAction(self.NewGroupFromSelectionAction)
  102.         self.GroupTableWidget.setDatabase(self.db)
  103.  
  104.     
  105.     def updateUi(self):
  106.         if not fax_avail:
  107.             FailureUI(self, self._FABWindow__tr('<b>Fax support disabled.</b><p>Fax support requires Python 2.3.'))
  108.             self.close()
  109.             return None
  110.         self.updateGroupList()
  111.         self.updateNameList()
  112.         self.updateDetailsFrame()
  113.  
  114.     
  115.     def closeEvent(self, e):
  116.         self.FaxNumberLineEdit.emit(SIGNAL('editingFinished()'))
  117.         self.NotesTextEdit.emit(SIGNAL('editingFinished()'))
  118.         e.accept()
  119.  
  120.     
  121.     def Splitter_splitterMoved(self, pos, index):
  122.         self.GroupTableWidget.setColumnWidth(0, self.GroupTableWidget.width())
  123.         self.NameTableWidget.setColumnWidth(0, self.NameTableWidget.width())
  124.  
  125.     
  126.     def updateGroupList(self):
  127.         self.updating_group = True
  128.         (all, k) = (None, None)
  129.         
  130.         try:
  131.             headerItem = QTableWidgetItem()
  132.             headerItem.setText(self._FABWindow__tr('Group'))
  133.             self.GroupTableWidget.clear()
  134.             self.GroupTableWidget.setColumnCount(1)
  135.             self.GroupTableWidget.setHorizontalHeaderItem(0, headerItem)
  136.             self.GroupTableWidget.setColumnWidth(0, self.GroupTableWidget.width())
  137.             groups = self.db.get_all_groups()
  138.             groups.sort()
  139.             self.GroupTableWidget.setRowCount(len(groups))
  140.             all = QTableWidgetItem(self._FABWindow__tr('All'))
  141.             all.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
  142.             self.GroupTableWidget.setItem(0, 0, all)
  143.             j = 1
  144.             for g in groups:
  145.                 if g == u'All':
  146.                     continue
  147.                 
  148.                 i = QTableWidgetItem(QString(g))
  149.                 if g == self.group:
  150.                     k = i
  151.                 
  152.                 i.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsDropEnabled)
  153.                 self.GroupTableWidget.setItem(j, 0, i)
  154.                 j += 1
  155.         finally:
  156.             self.updating_group = False
  157.             if k is not None:
  158.                 k.setSelected(True)
  159.             elif all is not None:
  160.                 all.setSelected(True)
  161.             
  162.  
  163.  
  164.     
  165.     def GroupTableWidget_itemSelectionChanged(self):
  166.         if not self.updating_group:
  167.             selected_items = self.GroupTableWidget.selectedItems()
  168.             if selected_items:
  169.                 self.group = unicode(selected_items[0].text())
  170.                 self.RemoveGroupAction.setEnabled(self.group != u'All')
  171.                 self.RenameGroupAction.setEnabled(self.group != u'All')
  172.             else:
  173.                 self.RemoveGroupAction.setEnabled(False)
  174.                 self.RenameGroupAction.setEnabled(False)
  175.                 self.group = None
  176.             self.updateNameList()
  177.         
  178.  
  179.     
  180.     def NameTableWidget_itemSelectionChanged(self):
  181.         if not self.updating_name:
  182.             selected_items = self.NameTableWidget.selectedItems()
  183.             num_selected_items = len(selected_items)
  184.             if num_selected_items == 0:
  185.                 self.name = None
  186.                 self.RemoveNameAction.setEnabled(False)
  187.                 self.NewGroupFromSelectionAction.setEnabled(False)
  188.                 self.RemoveFromGroupAction.setEnabled(False)
  189.                 self.AddToGroupAction.setEnabled(False)
  190.             elif num_selected_items == 1:
  191.                 self.name = unicode(selected_items[0].text())
  192.                 self.RemoveNameAction.setEnabled(True)
  193.                 self.NewGroupFromSelectionAction.setEnabled(True)
  194.                 self.RemoveFromGroupAction.setEnabled(self.group != u'All')
  195.                 self.AddToGroupAction.setEnabled(True)
  196.             else:
  197.                 self.RemoveNameAction.setEnabled(True)
  198.                 self.NewGroupFromSelectionAction.setEnabled(True)
  199.                 self.RemoveFromGroupAction.setEnabled(self.group != u'All')
  200.                 self.AddToGroupAction.setEnabled(True)
  201.                 self.name = None
  202.             self.updateDetailsFrame()
  203.         
  204.  
  205.     
  206.     def updateNameList(self):
  207.         self.updating_name = True
  208.         (m, k) = (None, None)
  209.         
  210.         try:
  211.             headerItem = QTableWidgetItem()
  212.             headerItem.setText(self._FABWindow__tr('Name'))
  213.             self.NameTableWidget.clear()
  214.             self.NameTableWidget.setColumnCount(1)
  215.             self.NameTableWidget.setHorizontalHeaderItem(0, headerItem)
  216.             self.NameTableWidget.setColumnWidth(0, self.NameTableWidget.width())
  217.             names = self.db.group_members(self.group)
  218.             filtered_names = _[1]
  219.             filtered_names.sort()
  220.             self.NameTableWidget.setRowCount(len(filtered_names))
  221.             for j, n in enumerate(filtered_names):
  222.                 i = QTableWidgetItem(QString(n))
  223.                 i.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
  224.                 self.NameTableWidget.setItem(j, 0, i)
  225.                 if j == 0:
  226.                     k = i
  227.                     continue
  228.                 None if n == self.name else []
  229.         finally:
  230.             self.updating_name = False
  231.             if m is not None:
  232.                 m.setSelected(True)
  233.             elif k is not None:
  234.                 k.setSelected(True)
  235.             else:
  236.                 self.name = None
  237.                 self.RemoveNameAction.setEnabled(False)
  238.                 self.NewGroupFromSelectionAction.setEnabled(False)
  239.                 self.RemoveFromGroupAction.setEnabled(False)
  240.                 self.AddToGroupAction.setEnabled(False)
  241.                 self.updateDetailsFrame()
  242.  
  243.  
  244.     
  245.     def selectByName(self, name):
  246.         rows = self.NameTableWidget.rowCount()
  247.         for r in range(rows):
  248.             i = self.NameTableWidget.item(r, 0)
  249.             i.setSelected(name == unicode(i.text()))
  250.         
  251.  
  252.     
  253.     def updateDetailsFrame(self):
  254.         if self.name is None:
  255.             self.NameFrame.setEnabled(False)
  256.             self.NameLineEdit.setText(QString())
  257.             self.FaxNumberLineEdit.setText(QString())
  258.             self.NotesTextEdit.setText(QString())
  259.         else:
  260.             self.NameFrame.setEnabled(True)
  261.             data = self.db.get(self.name)
  262.             self.NameLineEdit.setText(self.name)
  263.             self.FaxNumberLineEdit.setText(data['fax'])
  264.             self.NotesTextEdit.setText(data['notes'])
  265.  
  266.     
  267.     def NameLineEdit_editingFinished(self):
  268.         if self.name is not None:
  269.             new_name = unicode(self.NameLineEdit.text())
  270.             if new_name != self.name:
  271.                 if QMessageBox.question(self, self._FABWindow__tr('Rename?'), self._FABWindow__tr("Rename '%1' to '%2'?").arg(self.name).arg(new_name), QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:
  272.                     self.db.rename(self.name, new_name)
  273.                     log.debug('Rename %s to %s' % (self.name, new_name))
  274.                     self.emit(SIGNAL('databaseChanged'), FAB_NAME_RENAME, self.name, new_name)
  275.                     self.updateNameList()
  276.                 else:
  277.                     self.NameLineEdit.setText(self.name)
  278.             
  279.         
  280.  
  281.     
  282.     def FaxNumberLineEdit_editingFinished(self):
  283.         if self.name is not None:
  284.             self.db.set_key_value(self.name, 'fax', unicode(self.FaxNumberLineEdit.text()))
  285.             self.emit(SIGNAL('databaseChanged'), FAB_NAME_DETAILS_CHANGED, self.name)
  286.         
  287.  
  288.     
  289.     def NotesTextEdit_textChanged(self):
  290.         if self.name is not None:
  291.             self.db.set_key_value(self.name, 'notes', unicode(self.NotesTextEdit.document().toPlainText()))
  292.         
  293.  
  294.     
  295.     def NotesTextEdit_editingFinished(self):
  296.         if self.name is not None:
  297.             self.emit(SIGNAL('databaseChanged'), FAB_NAME_DETAILS_CHANGED, self.name)
  298.         
  299.  
  300.     
  301.     def NewGroupAction_triggered(self):
  302.         ok = False
  303.         (g, ok) = QInputDialog.getText(self, self._FABWindow__tr('Enter New Group Name'), self._FABWindow__tr('Name for New Group:'))
  304.         g = unicode(g)
  305.         if g == u'All':
  306.             FailureUI(self, self._FABWindow__tr("<b>Sorry, the group name cannot be 'All'.</b><p>Please choose a different name."))
  307.             ok = False
  308.         
  309.         if ok:
  310.             self.db.set('__' + utils.gen_random_uuid(), '', '', '', '', [
  311.                 u'All',
  312.                 g], '')
  313.             self.group = g
  314.             log.debug('New empty group %s' % self.group)
  315.             self.emit(SIGNAL('databaseChanged'), FAB_GROUP_ADD, self.group)
  316.             self.updateGroupList()
  317.         
  318.  
  319.     
  320.     def NewGroupFromSelectionAction_triggered(self):
  321.         selected_names = [ unicode(n.text()) for n in self.NameTableWidget.selectedItems() ]
  322.         if selected_names:
  323.             ok = False
  324.             (g, ok) = QInputDialog.getText(self, self._FABWindow__tr('Enter New Group Name'), self._FABWindow__tr('Name for New Group:'))
  325.             g = unicode(g)
  326.             groups = self.db.get_all_groups()
  327.             if ok:
  328.                 self.db.update_groups(g, selected_names)
  329.                 self.group = g
  330.                 log.debug('New group %s with names %s' % (self.group, ','.join(selected_names)))
  331.                 self.emit(SIGNAL('databaseChanged'), FAB_GROUP_ADD, self.group)
  332.                 self.updateGroupList()
  333.             
  334.         
  335.  
  336.     
  337.     def RenameGroupAction_triggered(self):
  338.         selected_items = self.GroupTableWidget.selectedItems()
  339.         if selected_items:
  340.             old_group = unicode(selected_items[0].text())
  341.             ok = False
  342.             (new_group, ok) = QInputDialog.getText(self, self._FABWindow__tr('Rename Group'), self._FABWindow__tr("New Name for Group '%1':").arg(old_group))
  343.             new_group = unicode(new_group)
  344.             groups = self.db.get_all_groups()
  345.             if new_group in groups:
  346.                 FailureUI(self, self._FABWindow__tr("<b>Sorry, the group name cannot be the same as an existing group (or 'All').</b><p>Please choose a different name."))
  347.                 ok = False
  348.             
  349.             if ok:
  350.                 self.db.rename_group(old_group, new_group)
  351.                 log.debug('Rename group %s to %s' % (old_group, new_group))
  352.                 self.emit(SIGNAL('databaseChanged'), FAB_GROUP_RENAME, old_group, new_group)
  353.                 self.group = new_group
  354.                 self.updateGroupList()
  355.             
  356.         
  357.  
  358.     
  359.     def RemoveGroupAction_triggered(self):
  360.         self.db.delete_group(self.group)
  361.         log.debug('Remove group %s' % self.group)
  362.         self.emit(SIGNAL('databaseChanged'), FAB_GROUP_REMOVE, self.group)
  363.         self.group = None
  364.         self.updateGroupList()
  365.  
  366.     
  367.     def NewNameAction_triggered(self):
  368.         ok = False
  369.         (t, ok) = QInputDialog.getText(self, self._FABWindow__tr('Enter New Name'), self._FABWindow__tr('New Name:'))
  370.         if ok:
  371.             t = unicode(t)
  372.             self.addName(t)
  373.         
  374.  
  375.     
  376.     def addName(self, name, fax = ''):
  377.         if self.group == u'All':
  378.             g = [
  379.                 u'All']
  380.         else:
  381.             g = [
  382.                 u'All',
  383.                 self.group]
  384.         self.db.set(name, '', '', '', fax, g, '')
  385.         self.name = name
  386.         log.debug('New name %s' % self.name)
  387.         self.emit(SIGNAL('databaseChanged'), FAB_NAME_ADD, self.name)
  388.         self.updateNameList()
  389.  
  390.     
  391.     def RemoveNameAction_triggered(self):
  392.         selected_names = [ unicode(n.text()) for n in self.NameTableWidget.selectedItems() ]
  393.  
  394.     
  395.     def RemoveFromGroupAction_triggered(self):
  396.         selected_names = [ unicode(n.text()) for n in self.NameTableWidget.selectedItems() ]
  397.  
  398.     
  399.     def GroupTableWidget_namesAddedToGroup(self, row, items):
  400.         self.group = unicode(self.GroupTableWidget.item(row, 0).text())
  401.         self.db.add_to_group(self.group, items)
  402.         log.debug('Adding %s to group %s' % (','.join(items), self.group))
  403.         self.emit(SIGNAL('databaseChanged'), FAB_GROUP_MEMBERSHIP_CHANGED, self.group)
  404.         self.updateGroupList()
  405.  
  406.     
  407.     def AddToGroupAction_triggered(self):
  408.         selected_names = [ unicode(n.text()) for n in self.NameTableWidget.selectedItems() ]
  409.  
  410.     
  411.     def ImportAction_triggered(self):
  412.         result = unicode(QFileDialog.getOpenFileName(self, self._FABWindow__tr('Import fax addresses from LDIF or vCard'), self.user_settings.working_dir, 'vCard (*.vcf);;LDIF (*.ldif *.ldi)'))
  413.         if result:
  414.             working_directory = unicode(os.path.dirname(result))
  415.             log.debug('result: %s' % result)
  416.             self.user_settings.working_dir = working_directory
  417.             self.user_settings.save()
  418.             if result:
  419.                 if result.endswith('.vcf'):
  420.                     (ok, error_str) = self.db.import_vcard(result)
  421.                 else:
  422.                     (ok, error_str) = self.db.import_ldif(result)
  423.                 if not ok:
  424.                     FailureUI(self, error_str)
  425.                 else:
  426.                     self.updateUi()
  427.             
  428.         
  429.  
  430.     
  431.     def __tr(self, s, c = None):
  432.         return qApp.translate('FABWindow', s, c)
  433.  
  434.  
  435.  
  436. class JoinDialog(QDialog):
  437.     
  438.     def __init__(self, parent, groups):
  439.         QDialog.__init__(self, parent)
  440.         self.group = ''
  441.         self.setupUi(groups)
  442.  
  443.     
  444.     def setupUi(self, groups):
  445.         self.setObjectName('Dialog')
  446.         self.resize(QSize(QRect(0, 0, 271, 107).size()).expandedTo(self.minimumSizeHint()))
  447.         self.gridlayout = QGridLayout(self)
  448.         self.gridlayout.setObjectName('gridlayout')
  449.         self.hboxlayout = QHBoxLayout()
  450.         self.hboxlayout.setObjectName('hboxlayout')
  451.         self.label = QLabel(self)
  452.         self.label.setObjectName('label')
  453.         self.hboxlayout.addWidget(self.label)
  454.         self.GroupJoinComboBox = QComboBox(self)
  455.         sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
  456.         sizePolicy.setHorizontalStretch(0)
  457.         sizePolicy.setVerticalStretch(0)
  458.         sizePolicy.setHeightForWidth(self.GroupJoinComboBox.sizePolicy().hasHeightForWidth())
  459.         self.GroupJoinComboBox.setSizePolicy(sizePolicy)
  460.         self.GroupJoinComboBox.setObjectName('comboBox')
  461.         self.hboxlayout.addWidget(self.GroupJoinComboBox)
  462.         self.gridlayout.addLayout(self.hboxlayout, 0, 0, 1, 3)
  463.         spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
  464.         self.gridlayout.addItem(spacerItem, 1, 0, 1, 1)
  465.         spacerItem1 = QSpacerItem(231, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
  466.         self.gridlayout.addItem(spacerItem1, 2, 0, 1, 1)
  467.         self.JoinButton = QPushButton(self)
  468.         self.JoinButton.setObjectName('pushButton_2')
  469.         self.gridlayout.addWidget(self.JoinButton, 2, 1, 1, 1)
  470.         self.CancelButton = QPushButton(self)
  471.         self.CancelButton.setObjectName('pushButton')
  472.         self.gridlayout.addWidget(self.CancelButton, 2, 2, 1, 1)
  473.         self.connect(self.GroupJoinComboBox, SIGNAL('currentIndexChanged(int)'), self.GroupJoinComboBox_currentIndexChanged)
  474.         for i, g in enumerate(groups):
  475.             if i == 0:
  476.                 self.group = g
  477.             
  478.             self.GroupJoinComboBox.insertItem(i, g)
  479.         
  480.         self.connect(self.JoinButton, SIGNAL('clicked()'), self.accept)
  481.         self.connect(self.CancelButton, SIGNAL('clicked()'), self.reject)
  482.         self.retranslateUi()
  483.  
  484.     
  485.     def GroupJoinComboBox_currentIndexChanged(self, i):
  486.         self.group = unicode(self.GroupJoinComboBox.currentText())
  487.  
  488.     
  489.     def retranslateUi(self):
  490.         self.setWindowTitle(QApplication.translate('Dialog', 'Join Group', None, QApplication.UnicodeUTF8))
  491.         self.label.setText(QApplication.translate('Dialog', 'Group to Join:', None, QApplication.UnicodeUTF8))
  492.         self.JoinButton.setText(QApplication.translate('Dialog', 'Join', None, QApplication.UnicodeUTF8))
  493.         self.CancelButton.setText(QApplication.translate('Dialog', 'Cancel', None, QApplication.UnicodeUTF8))
  494.  
  495.  
  496.